There has been an increasing consumer desire for self-differentiation, particularly for differentiating mass-marketed personal items. This can be clearly seen in the recent popularity of customized mobile phone ring-tones and fascias. In order to provide personalized graphics on consumer products, there has therefore been a need for a quick and easy-to-use graphics manipulation suite to allow users to make product-specific designs, particularly from locations remote from the main image storage and printing facility. However, providing such a graphics manipulation suite over the Internet has not proved easy.
One problem stems from the open nature of the Internet itself. In order to allow Internet users to visit hundreds of thousands of unverified web sites, and yet still protect the user's computer from viruses and malicious hackers, a browser must not allow the web sites to access files on the user's computer. Thus, browsers are “dummy terminals,” albeit very powerful ones; it is not easy to actively “do” anything with an Internet browser—it simply navigates between online resources and presents information and images to the user. Thus, for designing a graphical image for application to a personal item, an internet user may be able to manipulate images within the browser environment, but will not be able to save the images.
The problem of manipulating images to be applied to an article remote from the user has previously been solved in two ways, each of which has disadvantages. In one solution, a user manipulates images on his or her own machine without the use of a browser. This solution has the advantage of being extremely fast once installed on the local machine, but suffers from three major failings. First, in order to allow the program to run on the client machine, the user must first download a program. This takes time, and is inconvenient, because the software cannot be seen or tested until it is fully downloaded. Next, the program must be installed on the user's machine, where it will remain permanently until removed. This occupies storage space on the client hard drive, slows down the user's computer, and can cause system crashes. Finally, the downloaded program may have computer viruses.
In another image manipulation solution, an image is manipulated directly on a server using Java Applets, or another plug-in that functions in a similar fashion, such as a custom Activex control. Each time the user uses the interface to make a manipulation to the image, a separate call is made to the server; the server software changes the image's position, and sends back the information to the client machine. The theoretical advantages of Java and similar programs are that they can run on any client machine with identical results; and that the software does not need to be installed on the client machine, because the Java Applet runs within a Java Virtual Machine of the browser. However, the problem with Java and similar programs is that the Internet simply is not fast enough to provide a pleasant user experience. Also, in practice, because the Java Applet does not know which type of machine it will be run on, it can react very differently from one machine to the next.